package de.gof.ppstool.kundenauftragsverwaltung.db;

import java.io.Serializable;
import javax.persistence.*;

/**
 * The persistent class for the kundenauftrag database table.
 */
@Entity
@NamedQueries({
		@NamedQuery(name = Kundenauftrag.FINDE_ALLE_KUNDENAUFTRAEGE, query = "SELECT DISTINCT k FROM Kundenauftrag k"),
		@NamedQuery(name = Kundenauftrag.FINDE_KUNDENAUFTRAG_NACH_ID, query = "SELECT k FROM Kundenauftrag k WHERE k.kundenauftragId = :"
				+ Kundenauftrag.PARAM_KUNDENAUFTRAG_ID),
		@NamedQuery(name = Kundenauftrag.FINDE_KUNDENAUFTRAG_NACH_BEMERKUNG, query = "SELECT k FROM Kundenauftrag k WHERE k.bemerkung = :"
				+ Kundenauftrag.PARAM_BEMERKUNG) })
@Table(name = "kundenauftrag")
public class Kundenauftrag implements Serializable {
	private static final long serialVersionUID = 1L;
	static final String FINDE_ALLE_KUNDENAUFTRAEGE = "findeAlleKundenauftraege";
	static final String FINDE_KUNDENAUFTRAG_NACH_ID = "findeKundenauftragNachId";
	static final String FINDE_KUNDENAUFTRAG_NACH_BEMERKUNG = "findeKundenauftragNachBemerkung";
	static final String PARAM_KUNDENAUFTRAG_ID = "kundenauftrag_id";
	static final String PARAM_BEMERKUNG = "bemerkung";
	/**
	 * +++++++++++++++++++++++++++++++++++++++++++++++
	 * ++++ Attribute von der Klasse Kundenauftrag +++
	 * +++++++++++++++++++++++++++++++++++++++++++++++
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "kundenauftrag_sequence_name")
	@SequenceGenerator(name = "kundenauftrag_sequence_name", sequenceName = "kundenauftrag_kundenauftrag_id_seq", allocationSize = 1)
	@Column(name = "kundenauftrag_id", unique = true, nullable = false)
	private Long kundenauftragId;
	@Column(nullable = false, length = 2147483647)
	private Integer damenfahrrad;
	@Column(nullable = false, length = 2147483647)
	private Integer herrenfahrrad;
	@Column(nullable = false, length = 2147483647)
	private Integer kinderfahrrad;
	@Column(length = 2147483647)
	private String bemerkung;

	/**
	 * +++++++++++++++++++++++++++++++++++++++++++++++
	 * +++++ Konstruktoren der Klasse Kundenauftrag+++
	 * +++++++++++++++++++++++++++++++++++++++++++++++
	 */
	public Kundenauftrag() {
		super();
	}

	public Kundenauftrag(Long kundenauftrag_id, Integer damenfahrrad,
			Integer herrenfahrrad, Integer kinderfahrrad) {
		super();
		this.kundenauftragId = kundenauftrag_id;
		this.damenfahrrad = damenfahrrad;
		this.herrenfahrrad = herrenfahrrad;
		this.kinderfahrrad = kinderfahrrad;
	}

	public Kundenauftrag(Long kundenauftrag_id, Integer damenfahrrad,
			Integer herrenfahrrad, Integer kinderfahrrad, String bemerkung) {
		super();
		this.kundenauftragId = kundenauftrag_id;
		this.damenfahrrad = damenfahrrad;
		this.herrenfahrrad = herrenfahrrad;
		this.kinderfahrrad = kinderfahrrad;
		this.bemerkung = bemerkung;
	}

	/**
	 * +++++++++++++++++++++++++++++	
	 * +++++ Getter und Setter +++++
	 * +++++++++++++++++++++++++++++
	 */
	public Long getKundenauftragId() {
		return this.kundenauftragId;
	}

	public void setKundenauftragId(Long kundenauftragId) {
		this.kundenauftragId = kundenauftragId;
	}

	public Integer getDamenfahrrad() {
		return this.damenfahrrad;
	}

	public void setDamenfahrrad(Integer damenfahrrad) {
		this.damenfahrrad = damenfahrrad;
	}

	public Integer getHerrenfahrrad() {
		return this.herrenfahrrad;
	}

	public void setHerrenfahrrad(Integer herrenfahrrad) {
		this.herrenfahrrad = herrenfahrrad;
	}

	public Integer getKinderfahrrad() {
		return this.kinderfahrrad;
	}

	public void setKinderfahrrad(Integer kinderfahrrad) {
		this.kinderfahrrad = kinderfahrrad;
	}

	public String getBemerkung() {
		return bemerkung;
	}

	public void setBemerkung(String bemerkung) {
		this.bemerkung = bemerkung;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((damenfahrrad == null) ? 0 : damenfahrrad.hashCode());
		result = prime * result
				+ ((herrenfahrrad == null) ? 0 : herrenfahrrad.hashCode());
		result = prime * result
				+ ((kinderfahrrad == null) ? 0 : kinderfahrrad.hashCode());
		result = prime * result
				+ ((kundenauftragId == null) ? 0 : kundenauftragId.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;

		if (obj == null)
			return false;

		if (getClass() != obj.getClass())
			return false;

		Kundenauftrag other = (Kundenauftrag) obj;
		if (damenfahrrad == null) {
			if (other.damenfahrrad != null)
				return false;

		} else if (!damenfahrrad.equals(other.damenfahrrad))
			return false;

		if (herrenfahrrad == null) {
			if (other.herrenfahrrad != null)
				return false;

		} else if (!herrenfahrrad.equals(other.herrenfahrrad))
			return false;

		if (kinderfahrrad == null) {
			if (other.kinderfahrrad != null)
				return false;

		} else if (!kinderfahrrad.equals(other.kinderfahrrad))
			return false;

		if (kundenauftragId == null) {
			if (other.kundenauftragId != null)
				return false;

		} else if (!kundenauftragId.equals(other.kundenauftragId))
			return false;

		return true;
	}

	@Override
	public String toString() {
		return "Kundenauftrag [kundenauftrag_id = " + kundenauftragId
				+ ", damenfahrrad = " + damenfahrrad + ", herrenfahrrad = "
				+ herrenfahrrad + ", kinderfahrrad = " + kinderfahrrad + "]";
	}

}
